package com.hs.srm.admin.modules.material.entity;

import java.io.Serializable;

import com.hs.srm.base.common.annotation.DictMapping;
import com.hs.srm.base.common.base.CloneableEntity;
import com.hs.srm.base.common.utils.DictDataUtil;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

/*
 *
 */
@Setter
@Getter
@TableName("material_factory")
@ToString
public class MaterialFactoryEntity implements Serializable, CloneableEntity<MaterialFactoryEntity> {

    private static final long serialVersionUID = 1L;
    private static final int TYPE = 1;
    private static final int RETURN_TYPE = 2;

    public MaterialFactoryEntity() {
        super();
    }

    /*
     * 主键ID
     */
    @TableId(value = "material_factory_id", type = IdType.UUID)
    @TableField("material_factory_id")
    @Excel(name = "主键ID", orderNum = "1")
    private java.lang.String materialFactoryId;

    /*
     * 物料号
     */
    @TableField("material_code")
    @Excel(name = "物料号", orderNum = "2")
    private java.lang.String materialCode;

    /*
     * 跨工厂物料状态
     */
    @TableField("cross_material_status")
    @Excel(name = "跨工厂物料状态", orderNum = "3")
    private java.lang.String crossMaterialStatus;

    /*
     * 从跨工厂物料状态有效起的日期
     */
    @TableField("begin_date")
    @Excel(name = "从跨工厂物料状态有效起的日期", orderNum = "4")
    //@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date beginDate;

    /*
     * 工厂
     */
    @TableField("werks")
    @Excel(name = "工厂", orderNum = "5")
    @DictMapping(type = DictDataUtil.DictType.GC)
    private java.lang.String werks;

    /*
     * 库存地点
     */
    @DictMapping(type = DictDataUtil.DictType.KCDD)
    @TableField("storage_location")
    @Excel(name = "库存地点", orderNum = "6")
    private java.lang.String storageLocation;

    /*
     * 采购组
     */
    @DictMapping(type = DictDataUtil.DictType.CGZ)
    @TableField("purchase_group")
    @Excel(name = "采购组", orderNum = "7")
    private java.lang.String purchaseGroup;

    /*
     * 维护状态
     */
    @TableField("status")
    @Excel(name = "维护状态", orderNum = "8")
    private java.lang.String status;

    /*
     * 在客户级标记要删除的物料
     */
    @TableField("deleted_flag")
    @Excel(name = "在客户级标记要删除的物料", orderNum = "9")
    private java.lang.String deletedFlag;

    /*
     * MM/PP视图的物料状态
     */
    @TableField("mmpp_material_status")
    @Excel(name = "MM/PP视图的物料状态", orderNum = "10")
    private java.lang.String mmppMaterialStatus;

    /*
     *
     */
    @TableField("sync_date")
    @Excel(name = "", orderNum = "11")
    //@JsonFormat(pattern = "yyyy-MM-dd hh:ss:mm", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date syncDate;

    /*
     * 是否删除
     */
    @TableField("isdel")
    @Excel(name = "是否删除", orderNum = "12")
    private java.lang.Integer isdel;

    /*
     * 库存数量
     */
    @TableField("qunatity")
    @Excel(name = "库存数量", orderNum = "13")
    private java.lang.Integer qunatity;

    /*
     * 安全库存数量
     */
    @TableField("safe_cont")
    @Excel(name = "安全库存数量", orderNum = "14")
    private java.lang.Integer safeCont;

    /*
     * 是否被领用
     */
    @TableField("isLead")
    @Excel(name = "领用次数", orderNum = "15")
    private java.lang.Integer isLead;

    /*
     * 已用数量
     */
    @TableField("usecont")
    @Excel(name = "已用数量", orderNum = "16")
    private java.lang.Integer usecont;

    /*
     * 物料描述
     */
    @TableField("material_desc")
    @Excel(name = "物料描述", orderNum = "17")
    private java.lang.String materialDesc;
    /*
     * 已用数量
     */
    @TableField("storage ")
    @Excel(name = "储位", orderNum = "17")
    private java.lang.String storage;

    /*
     * 备注
     */
    @TableField(exist = false)
    private java.lang.String remark;

    @Override
    public MaterialFactoryEntity clone() {
        try {
            return (MaterialFactoryEntity) super.clone();
        } catch (CloneNotSupportedException ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();
        }
        return null;
    }
}

